package br.com.playonline.domain;

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "usuario")
public class Usuario implements Serializable {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;
	private static final long serialVersionUID = 1L;
	private String email;
	private String senha;
	private String papel;
	private Double saldo;
	private Double saldoEmJogo;
	private Boolean newlester;
	@OneToOne
	private Pessoa pessoa;
	@OneToOne
	private Carrinho carrinho;
	@OneToMany(mappedBy = "usuario",fetch = FetchType.LAZY, cascade = CascadeType.DETACH, targetEntity = Pagamento.class)
	private List<Pagamento> pagamentos;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public String getPapel() {
		return papel;
	}

	public void setPapel(String papel) {
		this.papel = papel;
	}

	public Double getSaldo() {
		return saldo;
	}

	public void setSaldo(Double saldo) {
		this.saldo = saldo;
	}

	public Boolean getNewlester() {
		return newlester;
	}

	public void setNewlester(Boolean newlester) {
		this.newlester = newlester;
	}

	public Double getSaldoEmJogo() {
		return saldoEmJogo;
	}

	public void setSaldoEmJogo(Double saldoEmJogo) {
		this.saldoEmJogo = saldoEmJogo;
	}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public Carrinho getCarrinho() {
		return carrinho;
	}

	public void setCarrinho(Carrinho carrinho) {
		this.carrinho = carrinho;
	}

	public List<Pagamento> getPagamentos() {
		return pagamentos;
	}

	public void setPagamentos(List<Pagamento> pagamentos) {
		this.pagamentos = pagamentos;
	}

	// @JsonSerialize(using = DateSerializer.class)
	// public Date getDtNascimento() {
	// return dtNascimento;
	// }
	//
	// public void setDtNascimento(Date dtNascimento) {
	// this.dtNascimento = dtNascimento;
	// }

}
